using System;

namespace Atomic.Libraries.Physics.Units
{
	public static class Constants
	{
		static Constants()
		{
			//BoltzmannConstant = EnergyPerTemperature.FromElectronVoltPerKelvin(8.617332478e-5);
			PlanckConstant = EnergyTime.FromElectronVoltSecond(4.13566751691e-15);
			PlanckConstantTwoPi = EnergyTime.FromElectronVoltSecond(6.5821192815e-16);
			SpeedOfLight = Velocity.FromMeterPerSecond(2.99792458e8);
			StandardAtmospherePressure = Pressure.FromPascal(1.01325e5);
		}

		public static EnergyPerTemperature BoltzmannConstant
		{
			get;
			private set;
		}

		public static EnergyTime PlanckConstant
		{
			get;
			private set;
		}

		public static EnergyTime PlanckConstantTwoPi
		{
			get;
			private set;
		}

		public static Velocity SpeedOfLight
		{
			get;
			private set;
		}

		/// <summary>
		/// The standard atmosphere (atm) defined as 1 atm = 101325 Pa.
		/// http://en.wikipedia.org/w/index.php?title=Atmosphere_(unit)&oldid=595902055#Pressure_units_and_equivalencies
		/// </summary>
		public static Pressure StandardAtmospherePressure
		{
			get;
			private set;
		}
	}
}
